/*1*/ package Controlador;
/*2*/
/*3*/ import Modelo.ModeloCasoDeUso;
/*4*/ import Modelo.ModeloMapaConversacional;
/*5*/ import Modelo.ModeloObjetivosDelNegocio;
import Modelo.ModeloSesion;
import Vista.VistaPrincipal;
import java.util.Vector;
import javax.swing.JFrame;

import javax.swing.UIManager;
/*7*/
/*8*/ /**
 * Controlador encargado de gestionar las acciones de las vistas y otros controladores
 * Define las operaciones básicas para el control de todos los otros controladores.
 * @author DavidyAly
 */
/*12*/ public class ControladorPrincipal {
    /*13*/
    /*14*/     //private VistaHome vistaH;
/*15*/ private ControladorCargarArchivos controladorCA;// = new ControladorCargarArchivos(this);
    /*16*/     //private ControladorIdentificarCU1 controladorCU1;
/*17*/   //  private ControladorIdentificarCU2 controladorCU2 = new ControladorIdentificarCU2();
    private ControladorIdentificarCU2 controladorCU2;
    /*18*/ private ControladorObtenerActores controlOA;
    /*19*/ private ControladorPrecondiciones conroladorP;
    /*20*/ private ControladorResumen controladorR;
    /*21*/ private ControladorPostCondiciones controladorPC;
    /*22*/ private ControladorDescripcion1 controladorD1;
    /*23*/ private ControladorDescripcion2 controladorD2;
    /*24*/ private ControladorExcepciones controladorE;
           //private ControladorExcepciones2 controladorEx2;
    /*25*/ private ControladorDefinirCasosDeUso controladorDCU;
    /*26*/ private VistaPrincipal vista = new VistaPrincipal(this);
    private ControladorInicio inicio = new ControladorInicio(this);
    private ControladorIdentificarCU1 controladorCU1; //= new ControladorIdentificarCU1(this);
/*27*/ /**
     * Constructor de la clase ControladorPrincipal
     */
    /*30*/ public ControladorPrincipal() {
///*31*/         vistaH = new VistaHome(this);
///*32*/         this.setControladorCA(null);
///*33*/         this.setControladorE1A(null);
///*34*/         this.setControladorCU2(null);
///*35*/         this.setControlOA(null);
///*36*/         this.setConroladorP(null);
///*37*/         this.setControladorR(null);
///*38*/         this.setControladorPC(null);
///*39*/         this.setControladorD1(null);
///*40*/         this.setControladorD2(null);
///*41*/         this.setControladorE(null);
///*42*/         this.setControladorDCU(null);
        //vista.getPanel().add(vista.getVista(),"Home");

        vista.getPanel().add(inicio.getVista(), "VInicio");
        //vista.getPanel().add(controladorCA.getVista(), "VCargarArchivo");
        vista.setBackDisable();
        //vista.getPanel().add(controladorCU2.getVista(),"VIdentificarCU2");
        /*43*/    }

    public ControladorIdentificarCU1 getControladorCU1() {
        return controladorCU1;
    }

    public ControladorInicio getInicio() {
        return inicio;
    }
    
    
    
    
    /*44*/
    /*45*/ /**
     * Retorna el controlador de carga de archivos
     * @return ControladorCargaArchivos 
     */
    /*49*/ public ControladorCargarArchivos getControladorCA() {
        /*50*/ return controladorCA;
        /*51*/    }
    /*52*/
    /*53*/ /**
     * Asigna el valor de controladorCA con el parámetro ingresado
     * @param controladorCA: controlador de carga de archivos ingresado
     */
    /*57*/ public void setControladorCA(ControladorCargarArchivos controladorCA) {
        /*58*/ this.controladorCA = controladorCA;
        /*59*/    }
    /*60*/
    /*61*/ /**
     * Retorna un controlador de identificación de caso de uso 1
     * @return controlador de identificación de caso de uso 1
     */
    /*65*/ public ControladorIdentificarCU1 getControladorE1A() {
        /*66*/ return controladorCU1;
        /*67*/    }
    /*68*/
    /*69*/ /**
     * Asigna el controlador de casos de uso 1 al valor asignado
     * @param controladorE1A ControladorIdentificarCU1 a asignar
     */
    /*73*/ public void setControladorE1A(ControladorIdentificarCU1 controladorE1A) {
        /*74*/ this.controladorCU1 = controladorE1A;
        /*75*/    }
    /*76*/
    /*77*/ /**
     * Retorna la vista principal
     * @return VistaHome actual
     */
    /*81*/ public VistaPrincipal getVista() {
        /*82*/ return vista;
        /*83*/    }
    /*84*/
    /*85*/ /**
     * Asigna la vista inicial a la ingresada como parámentro
     * @param vistaH: vista inicial 
     */
    /*89*/ public void setVistaH(VistaPrincipal vistaH) {
        /*90*/ this.vista = vistaH;
        /*91*/    }
    /*92*/
    /*93*/ /**
     * Retorna el ControladorIdentificarCU2 instanciado en el objeto actual
     * @return el ControladorIdentificarCU2 actual
     */
    /*97*/ public ControladorIdentificarCU2 getControladorCU2() {
        /*98*/ return controladorCU2;
        /*99*/    }
    /*100*/
    /*101*/ /** 
     * Asigna el ControladorIdentificarCU2 al ingresado como parámetro
     * @param controladorCU2 a usar
     */
    /*105*/ public void setControladorCU2(ControladorIdentificarCU2 controladorCU2) {
        /*106*/ this.controladorCU2 = controladorCU2;
        /*107*/    }
    /*108*/
    /*109*/ /**
     * Retorna un ControladorObtenerActores actual
     * @return ControladorObtenerActores asociado a la instancia actual
     */
    /*113*/ public ControladorObtenerActores getControlOA() {
        /*114*/ return controlOA;
        /*115*/    }
    /*116*/
    /*117*/ /**
     * Asigna un valor de ControladorObtenerActores ingresado por parámetros
     * @param controlOA el valor a ingresar para ControladorObtenerActores
     */
    /*121*/ public void setControlOA(ControladorObtenerActores controlOA) {
        /*122*/ this.controlOA = controlOA;
        /*123*/    }
    /*124*/
    /*125*/ /**
     * retorna un valor de ControladorPrecondiciones asociado a la instancia actual
     * @return ControladorPrecondiciones actual
     */
    /*129*/ public ControladorPrecondiciones getConroladorP() {
        /*130*/ return conroladorP;
        /*131*/    }
    /*132*/
    /*133*/ /**
     * Asigna un valor de ControladorPrecondiciones ingresaso por parámetro
     * @param conroladorP valor a ingresar para ControladorPrecondiciones
     */
    /*137*/ public void setConroladorP(ControladorPrecondiciones conroladorP) {
        /*138*/ this.conroladorP = conroladorP;
        /*139*/    }
    /*140*/
    /*141*/ /**
     * Retorna un ControladorResumen asociado a la instancia actual
     * @return ControladorResumen actual
     */
    /*145*/ public ControladorResumen getControladorR() {
        /*146*/ return controladorR;
        /*147*/    }
    /*148*/
    /*149*/ /**
     * Asigna un valor de ControladorResumen ingresado por parámetro
     * @param controladorR el valor a ingresar para ControladorResumen
     */
    /*153*/ public void setControladorR(ControladorResumen controladorR) {
        /*154*/ this.controladorR = controladorR;
        /*155*/    }
    /*156*/
    /*157*/ /**
     * Retorna un ControladorPostCondiciones asociado a la instancia actual
     * @return ControladorPostCondiciones actual
     */
    /*161*/ public ControladorPostCondiciones getControladorPC() {
        /*162*/ return controladorPC;
        /*163*/    }
    /*164*/
    /*165*/ /**
     * Asigna un valor de ControladorPostCondiciones ingresado por parámetro
     * @param controladorPC ControladorPostCondiciones actual
     */
    /*169*/ public void setControladorPC(ControladorPostCondiciones controladorPC) {
        /*170*/ this.controladorPC = controladorPC;
        /*171*/    }
    /*172*/
    /*173*/ /**
     * Retorna una instancia ControladorDescripcion1 asociada a la instancia actual 
     * @return ControladorDescripcion1 actual
     */
    /*177*/ public ControladorDescripcion1 getControladorD1() {
        /*178*/ return controladorD1;
        /*179*/    }
    /*180*/
    /*181*/ /**
     * Asigna un valor para ControladorDescripcion1 asignado por parámetros
     * @param controladorD1 a usar
     */
    /*185*/ public void setControladorD1(ControladorDescripcion1 controladorD1) {
        /*186*/ this.controladorD1 = controladorD1;
        /*187*/    }
    /*188*/
    /*189*/ /**
     * Retorna un valor para ControladorDescripcion2 asociado a la instancia actual
     * @return ControladorDescripcion2 actual
     */
    /*193*/ public ControladorDescripcion2 getControladorD2() {
        /*194*/ return controladorD2;
        /*195*/    }
    /*196*/
    /*197*/ /**
     * Asigna un valor para ControladorDescripcion2 ingresado por parámetros
     * @param controladorD2 ControladorDescripcion2 a usar
     */
    /*201*/ public void setControladorD2(ControladorDescripcion2 controladorD2) {
        /*202*/ this.controladorD2 = controladorD2;
        /*203*/    }
    /*204*/
    /*205*/ /**
     * Retorna un ControladorExcepciones asociado a la instancia actual
     * @return ControladorExcepciones actual
     */
    /*209*/ public ControladorExcepciones getControladorE() {
        /*210*/ return controladorE;
        /*211*/    }
            //public ControladorExcepciones2 getControladorEx2() {
        /*210*/ //return controladorEx2;
        /*211*/  //  }
    /*213*/ /**
     * Asigna un valor para ControladorExcepciones ingresado por parámetro
     * @param controladorE ControladorExcepciones a usar
     */
    /*217*/ public void setControladorE(ControladorExcepciones controladorE) {
        /*218*/ this.controladorE = controladorE;
        /*219*/    }
    /*220*/
            //public void setControladorEx2(ControladorExcepciones2 controladorEx2) {
        /*218*/// this.controladorEx2 = controladorEx2;
        /*219*/  //  }
    /*221*/ /**
     * Retorna un ControladorDefinirCasosDeUso asociado a la instancia actual
     * @return ControladorDefinirCasosDeUso actual
     */
    /*225*/ public ControladorDefinirCasosDeUso getControladorDCU() {
        /*226*/ return controladorDCU;
        /*227*/    }
    /*228*/
    /*229*/ /**
     * Asigna un valor de ControladorDefinirCasosDeUso ingresado por parámetro
     * @param controladorDCU ControladorDefinirCasosDeUso a usar
     */
    /*233*/ public void setControladorDCU(ControladorDefinirCasosDeUso controladorDCU) {
        /*234*/ this.controladorDCU = controladorDCU;
        /*235*/    }
    /*236*/
    /*237*/ /**
     * Redirige hacia el controlador de cargar archivos
     */
    /*240*/ public void irControladorCargarArchivos() {
        /*241*/ this.controladorCA = new ControladorCargarArchivos(this);
        /*242*/ this.vista.setVisible(false);
        /*243*/    }
    /*244*/
    /*245*/ /**
     * Redirige al controlador para identificar el caso de uso 1
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*251*/ public void irControladorIdentificarCU1(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*252*/ if (this.controladorCU1 == null) {
                    //this.controladorCU1 = new ControladorIdentificarCU1(this, controladorCA.modeloMC, controladorCA.modeloON, controladorCA.modeloCU);
            /*253*/ this.controladorCU1 = new ControladorIdentificarCU1(this, modeloMC, modeloON, modeloCU);
                    vista.getPanel().add(controladorCU1.getVista(), "VIdentificarCU1");
                    this.controladorCU1.setRows();
                    this.controladorCU1.setListWO();
                    this.controladorCU1.setListadoSA();
                    controladorCU1.activarVista();
                     
            /*254*/        } else {
            /*255*/ this.controladorCU1.irVistaIdentificarCU1();
                    vista.getPanel().add(controladorCU1.getVista(), "VIdentificarCU1");
                    controladorCU1.activarVista(); 
            /*256*/        }
        /*257*/    }
    /*258*/
    /*259*/ /**
     * Redirige a la vista de identificar caso de uso 1
     */
    /*262*/ public void irVistaIdentificarCU1() {
        /*263*/ this.controladorCU1.irVistaIdentificarCU1();
        /*264*/    }
    /*265*/
    /*266*/ /**
     * Redirige al controlador para identificar el caso de uso 2
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos de negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    public void irControladorIdentificarCU2(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        if (this.controladorCU2 == null) {
            this.controladorCU2 = new ControladorIdentificarCU2(this, modeloMC, modeloON, modeloCU);
            vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
            controladorCU2.setModeloCU(modeloCU);
            controladorCU2.setModeloMC(modeloMC);
            controladorCU2.setModeloON(modeloON);
            controladorCU2.activarVista();


            //this.controladorCU2 = new ControladorIdentificarCU2(this, modeloMC, modeloON, modeloCU);

        } else {
            this.controladorCU2.irVistaIdentificarCU2();
            vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
            controladorCU2.activarVista();
        }
    }
    /*279*/
    /*280*/ /**
     * Redirige al controlador de obtener actores
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos de negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*286*/ public void irControladorObtenerActores(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*287*/ if (this.controlOA == null) {
            //controladorCU2.setNombreCasosUso();
            /*288*/ this.controlOA = new ControladorObtenerActores(this, modeloMC, modeloON, modeloCU);
            vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
            controlOA.activarVista();
            /*289*/        } else {
            /*290*/ this.controlOA.irVistaObtenerACtores();
            vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
            controlOA.activarVista();            
            /*291*/        }
        /*292*/    }
    /*293*/
    /*294*/ /**
     * Redirige al controlador de precondiciones
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos de negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*300*/ public void irControladorPrecondiciones(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*301*/ if (this.conroladorP == null) {
            /*302*/ this.conroladorP = new ControladorPrecondiciones(this, modeloMC, modeloON, modeloCU);
                        vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
                        conroladorP.activarVista();
            /*303*/        } else {
            /*304*/ this.conroladorP.irVistaPrecondiciones();
                        vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
                        conroladorP.activarVista();            
            /*305*/        }
        /*306*/    }
    /*307*/
    /*308*/ /**
     * Redirige al controlador resumen
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*314*/ public void irControladorResumen(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*315*/ if (this.controladorR == null) {
            /*316*/ this.controladorR = new ControladorResumen(this, modeloMC, modeloON, modeloCU);
                            vista.getPanel().add(controladorR.getVista(), "VResumen");
                            controladorR.activarVista();
            /*317*/        } else {
            /*318*/ this.controladorR.irVistaResumen();
                            vista.getPanel().add(controladorR.getVista(), "VResumen");
                            controladorR.activarVista();            
            /*319*/        }
        /*320*/    }
    /*321*/
    /*322*/ /**
     * Redirige al controlador de postcondiciones
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*328*/ public void irControladorPostCondiciones(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*329*/ if (this.controladorPC == null) {
            
            /*330*/ this.controladorPC = new ControladorPostCondiciones(this, modeloMC, modeloON, modeloCU);
                        vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
                        controladorPC.activarVista();
            /*331*/        } else {
            /*332*/ this.controladorPC.irVistaPostCondiciones();
                        vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
                        controladorPC.activarVista();
            /*333*/        }
        /*334*/    }
    /*335*/
    /*336*/ /**
     * Redirige al controlador de descripción 1
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*342*/ public void irControladorDescripcion1(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*343*/ if (this.controladorD1 == null) {
            /*344*/ this.controladorD1 = new ControladorDescripcion1(this, modeloMC, modeloON, modeloCU);
                        vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
                        controladorD1.activarVista();            
            /*345*/        } else {
            /*346*/ this.controladorD1.irVistaDescripcion1();
                         vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
                         controladorD1.activarVista();            
            /*347*/        }
        /*348*/    }
    /*349*/
    /*350*/ /**
     * Redirige al controlador de descripcipon 2
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*356*/ public void irControladorDescripcion2(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*357*/ if (this.controladorD2 == null) {
            /*358*/ this.controladorD2 = new ControladorDescripcion2(this, modeloMC, modeloON, modeloCU);
                        vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
                        controladorD2.activarVista();            
            /*359*/        } else {
            /*360*/ this.controladorD2.irVistaDescripcion2();
                        vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
                        controladorD2.activarVista();            
            /*361*/        }
        /*362*/    }
    /*363*/
    /*364*/ /**
     * Activa la vista de descripción 2
     */
    /*367*/ public void irVistaDescripcion2() {
        /*368*/ this.controladorD2.irVistaDescripcion22();
        /*369*/    }
    /*370*/
    /*371*/ /**
     * Redirige al controlador de excepciones
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*377*/ public void irControladorExcepciones(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*378*/ if (this.controladorE == null) {
            /*379*/ this.controladorE = new ControladorExcepciones(this, modeloMC, modeloON,modeloCU);
                    vista.getPanel().add(controladorE.getVista(), "VExcepciones");
                    controladorE.activarVista();
        /*380*/ } else {
        /*381*/     this.controladorE.irVistaExcepciones();
                    vista.getPanel().add(controladorE.getVista(), "VExcepciones");
                    controladorE.activarVista();
        /*382*/ }
    /*383*/ }
    /*384*/
            //public void irControladorExcepciones2(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*378*/ //if (this.controladorEx2 == null) {
            /*379*/// this.controladorEx2 = new ControladorExcepciones2(this, modeloMC, modeloON, modeloCU);
                   // vista.getPanel().add(controladorEx2.getVista(), "VExcepcion2");
                   // controladorEx2.activarVista();
        /*380*/ //} else {
        /*381*/   //  this.controladorEx2.irVistaExcepciones2();
                  //  vista.getPanel().add(controladorEx2.getVista(), "VExcepcion2");
                  //  controladorEx2.activarVista();
        /*382*/ //}
    /*383*///}
    /*384*/
    /*385*/ /**
     * Redirige al controlador de definir casos de uso
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     */
    /*391*/ public void irControladorDefinirCasosDeUso(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU) {
        /*392*/ if (this.controladorDCU == null) {
            /*393*/ this.controladorDCU = new ControladorDefinirCasosDeUso(this, modeloMC, modeloON, modeloCU);
                        vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
                        controladorDCU.activarVista();            
            /*394*/        } else {
            /*395*/ this.controladorDCU.irVistaDefinirCasosDeUso();
                        vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
                        controladorDCU.activarVista();            
            /*396*/        }
        /*397*/    }
    
    public void guardar(int nvista, String ruta){
        //si la ruta no termina en .xml se agrega xml al final
        if(!ruta.toLowerCase().endsWith(".xml")){
            ruta = ruta + ".xml";
        }
        System.out.println("ENTRO!!");
        if(nvista == 3 ){
            controladorCU1.archivoSesion(ruta);
        }
        else if(nvista == 4){
            controladorCU2.archivoSesion(ruta);
        }
        else if(nvista == 5){
            controlOA.archivoSesion(ruta);
        }
        else if(nvista == 6){
            conroladorP.archivoSesion(ruta);
        }
        else if(nvista == 7){
            controladorR.archivoSesion(ruta);
        }
        else if(nvista == 8){
            controladorPC.archivoSesion(ruta);
        }
        else if(nvista == 9){
            controladorD1.archivoSesion(ruta);
        }
        else if(nvista == 10){
            controladorD2.archivoSesion(ruta);
        }
        else if(nvista == 11){
            controladorE.archivoSesion(ruta);
        }
        else if(nvista ==12){
            //controladorEx2.archivoSesion(ruta);
        //}
        //else
        
            controladorDCU.archivoSesion(ruta);
        }
        System.out.println("SALIO!!");
    }
    
    /*398*/
    /*399*/ /**
     *
     * Redirige al controlador de ir a sesión anterior
     * @param modeloMC: modelo de mapa conversacional a usar
     * @param modeloON: modelo de objetivos del negocio a usar
     * @param modeloCU: modelo de casos de uso a usar
     * @param ventana: código de la ventana a redireccionar 
     */
    /*406*/ public void irSesionAnterior(ModeloMapaConversacional modeloMC, ModeloObjetivosDelNegocio modeloON, ModeloCasoDeUso modeloCU, int ventana) {
                if(ventana == 3){
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(4);
                    this.irControladorIdentificarCU1(modeloMC, modeloON, modeloCU);
                }
        /*407*/ if (ventana == 4) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(4);
            /*408*/ this.irControladorIdentificarCU2(modeloMC, modeloON, modeloCU);
            /*409*/        }
        /*410*/ if (ventana == 5) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(5);
            /*411*/ this.irControladorObtenerActores(modeloMC, modeloON, modeloCU);
            /*412*/        }
        /*413*/ if (ventana == 6) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(6);
            /*414*/ this.irControladorPrecondiciones(modeloMC, modeloON, modeloCU);
            /*415*/        }
        /*416*/ if (ventana == 7) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(7);
            /*417*/ this.irControladorResumen(modeloMC, modeloON, modeloCU);
            /*418*/        }
        /*419*/ if (ventana == 8) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(8);
            /*420*/ this.irControladorPostCondiciones(modeloMC, modeloON, modeloCU);
            /*421*/        }
        /*422*/ if (ventana == 9) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(9);
            /*423*/ this.irControladorDescripcion1(modeloMC, modeloON, modeloCU);
            /*424*/        }
        /*425*/ if (ventana == 10) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(10);
            /*426*/ this.irControladorDescripcion2(modeloMC, modeloON, modeloCU);
            /*427*/        }
        /*428*/ if (ventana == 11) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(11);
            /*429*/ this.irControladorExcepciones(modeloMC, modeloON, modeloCU);
            /*430*/        }
                //if (ventana ==12){
                  //  this.getVista().setSA(1);
                  //  this.getVista().setBackEnable();
                  //  this.getVista().setNvista(12);
            /*429*/// this.irControladorExcepciones2(modeloMC, modeloON, modeloCU);
               // }
        /*431*/ if (ventana == 12) {
                    this.getVista().setSA(1);
                    this.getVista().setBackEnable();
                    this.getVista().setNvista(12);
            /*432*/ this.irControladorDefinirCasosDeUso(modeloMC, modeloON, modeloCU);
            /*433*/        }
        /*434*/    }

    public void activarV(int nvista, int nEstado) {
       this.getVista().setTitle("CO2U");  
        if (nvista == 1 ) {
            this.vista.setNumeroEstado(2);
            this.vista.setNvista(2);
            controladorCA = new ControladorCargarArchivos(this);
            vista.getPanel().add(controladorCA.getVista(), "VCargarArchivo");
            this.controladorCA.activarVista();
        } else if (nvista == 2 ) {
            //Vista posicionado: Cargar archivo
            if(controladorCA.valido)
            {
                vista.setBackEnable();
                this.vista.setNumeroEstado(3);
                this.vista.setNvista(3);
                controladorCU1 = new ControladorIdentificarCU1(this, controladorCA.modeloMC, controladorCA.modeloON, controladorCA.modeloCU);
                vista.getPanel().add(controladorCU1.getVista(), "VIdentificarCU1");
                controladorCU1.activarVista();
            }
            else
            {
                controladorCA.Alerta("Aun no son cargados los modelos, favor de cargar los modelos antes de continuar");
            }
            
            
        } else if (nvista == 3) {
            if(this.getVista().getSA() == 0){
                if (this.controladorCU1.validarCU1()){
                    this.vista.setNumeroEstado(4);
                    this.vista.setNvista(4);
                    this.controladorCU1.setRows();
                    this.controladorCU1.setListWO();
                    this.controladorCU1.setListadoSA();
                    vista.setforwardEnable();
                    controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                    vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
                    controladorCU2.activarVista();
                }
                else {
                    this.controladorCU1.Alerta("Todos los workflow deben ser asociados a los objetivos del negocio");
                }
            }
            else{
                if (this.controladorCU1.validarCU1()){
                    this.vista.setNumeroEstado(4);
                    this.vista.setNvista(4);
                    controladorCU1 = new ControladorIdentificarCU1(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                    this.controladorCU1.setRows();
                    this.controladorCU1.setListWO();
                    this.controladorCU1.setListadoSA();
                    vista.setforwardEnable();
                    controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                    vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
                    controladorCU2.activarVista();
                }
                else {
                    this.controladorCU1.Alerta("Debe asociar todos los workflows a objetivos del negocio");
                }
            }
        } else if (nvista == 4) {
            if(this.getVista().getSA() == 0){
                controladorCU2.Validador();
                if(controladorCU2.valido){
                    this.vista.setNumeroEstado(5);
                    this.vista.setNvista(5);
                    controladorCU2.setNombreCasosUso();
                    controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                    vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
                    controlOA.activarVista();
                }
                else
                {
                    controladorCU2.Alerta("No deben haber celdas vacías. Por favor, rellene todas las celdas!!");
                }
            }
            else{
                controladorCU2.Validador();
                if(controladorCU2.valido){
                    this.vista.setNumeroEstado(5);
                    this.vista.setNvista(5);
                    controladorCU2.setNombreCasosUso();
                    controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                    vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
                    controlOA.activarVista();
                }
                else
                {
                    controladorCU2.Alerta("No deben haber celdas vacías. Por favor, rellene todas las celdas!!");
                }
            }
        } else if (nvista == 5) { //mostrar los clientes y realizadores de los workflows asociados en la atapa anterior
            if(this.getVista().getSA() == 0){
                this.vista.setNvista(6);
                this.vista.setNumeroEstado(6);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
                conroladorP.activarVista();
            }
            else{
                this.vista.setNvista(6);
                this.vista.setNumeroEstado(6);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);    
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
                conroladorP.activarVista();
            }

        } else if (nvista == 6) {
            if(this.getVista().getSA() == 0){
                conroladorP.checkValido();
                if(conroladorP.valido){
                    this.vista.setNumeroEstado(7);
                    this.vista.setNvista(7);
                    conroladorP.setPrecondicionesCU();
                    controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                    vista.getPanel().add(controladorR.getVista(), "VResumen");
                    controladorR.activarVista();
                }
                else
                {
                   conroladorP.Alerta("Todas las precondiciones deben ser descritas");
                   vista.recuperarEstado6();
                }
            }
            else{
                conroladorP.checkValido();
                if(conroladorP.valido){
                    this.vista.setNumeroEstado(7);
                    this.vista.setNvista(7);
                    controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                    this.controladorCU1.setRows();
                    this.controladorCU1.setListWO();
                    this.controladorCU1.setListadoSA();
                    controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                    controladorCU2.setNombreCasosUso();
                    controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);    
                    conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                    conroladorP.setPrecondicionesCU();
                    controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                    vista.getPanel().add(controladorR.getVista(), "VResumen");
                    controladorR.activarVista();
                }
                else
                {
                   conroladorP.Alerta("Todas las precondiciones deben ser descritas");
                   vista.recuperarEstado6();
                }
            }
        } else if (nvista == 7) {
            if(this.getVista().getSA() == 0){
                controladorR.checkValido();
                if(controladorR.valido){
                    this.vista.setNumeroEstado(8);
                    this.vista.setNvista(8);
                    controladorR.setResumenCU();
                    controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, conroladorP.modeloCU);
                    vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
                    controladorPC.activarVista();
                }
                else
                {
                   controladorR.Alerta("Todos los resumenes deben ser descritos");
                }
            }
            else{
                controladorR.checkValido();
                if(controladorR.valido){
                    this.vista.setNumeroEstado(8);
                    this.vista.setNvista(8);
                    controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                    this.controladorCU1.setRows();
                    this.controladorCU1.setListWO();
                    this.controladorCU1.setListadoSA();
                    controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                    controladorCU2.setNombreCasosUso();
                    controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);    
                    conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                    conroladorP.setPrecondicionesCU();
                    controladorR = new ControladorResumen(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                    controladorR.setResumenCU();
                    controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                    vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
                    controladorPC.activarVista();
                }
                else
                {
                   controladorR.Alerta("Todos los resumenes deben ser descritos");
                   
                }
            }
                   
        }else if (nvista == 8) {
            if(this.getVista().getSA() == 0){
                if(this.controladorPC.validarPC()){
                //vista.setforwardDisable();
                this.vista.setNumeroEstado(9);
                this.vista.setNvista(9);
                controladorPC.setPostCondicionesCU();
                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
                vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
                controladorD1.activarVista();
                }
                else
                {
                        this.controladorPC.Alerta("Todas las postcondiciones deben ser descritas");
                }
            }
            else{
                if(this.controladorPC.validarPC()){
                //vista.setforwardDisable();
                this.vista.setNumeroEstado(9);
                this.vista.setNvista(9);
                    controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                    this.controladorCU1.setRows();
                    this.controladorCU1.setListWO();
                    this.controladorCU1.setListadoSA();
                    controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                    controladorCU2.setNombreCasosUso();
                    controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                    conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                    conroladorP.setPrecondicionesCU();
                    controladorR = new ControladorResumen(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                    controladorR.setResumenCU();
                    controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                controladorPC.setPostCondicionesCU();
                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
                vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
                controladorD1.activarVista();
                }
                else
                {
                        this.controladorPC.Alerta("Todas las postcondiciones deben ser descritas");
                }

            }
        }      
         else if (nvista == 9) {
             if(this.getVista().getSA() == 0){
                 if(controladorD1.getVista().nulos() == 0){
                    controladorD1.validador();
                    if(controladorD1.valido){
                        this.vista.setNumeroEstado(10);
                        this.vista.setNvista(10);
                        controladorD1.setActorCelda();
                        controladorD1.setDatosD2();
                        controladorD1.setActoresCU();
                        controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                        vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
                        controladorD2.activarVista();
                    }
                    else{
                        controladorD1.Alerta("Se debe especificar el cliente y realizador para cada tarea");
                    }
                 }
                 else{
                        controladorD1.Alerta("Se debe especificar el cliente y realizador para cada tarea");
                    }
             }
             else{
                 if(controladorD1.getVista().nulos() == 0){
                    controladorD1.validador();
                    if(controladorD1.valido){
                        this.vista.setNumeroEstado(10);
                        this.vista.setNvista(10);
                            controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                            this.controladorCU1.setRows();
                            this.controladorCU1.setListWO();
                            this.controladorCU1.setListadoSA();
                            controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                            controladorCU2.setNombreCasosUso();
                            controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                            conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                            conroladorP.setPrecondicionesCU();
                            controladorR = new ControladorResumen(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                            controladorR.setResumenCU();
                            controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                            controladorD1 = new ControladorDescripcion1(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                        controladorD1.setActorCelda();
                        controladorD1.setDatosD2();
                        controladorD1.setActoresCU();
                        controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                        vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
                        controladorD2.activarVista();
                    }else{
                        controladorD1.Alerta("Se debe especificar el cliente y realizador para cada tarea");
                    }
                 }

             }
        } else if (nvista == 10) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(11);
                this.vista.setNvista(11);
                controladorD2.setDescripcionCU();
                controladorE = new ControladorExcepciones(this, controladorD2.modeloMC, controladorD2.modeloON, controladorD2.modeloCU);
                vista.getPanel().add(controladorE.getVista(), "VExcepciones");
                controladorE.activarVista();
            }
            else{
                this.vista.setNumeroEstado(11);
                this.vista.setNvista(11);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                            this.controladorCU1.setRows();
                            this.controladorCU1.setListWO();
                            this.controladorCU1.setListadoSA();
                            controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                            controladorCU2.setNombreCasosUso();
                            controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                            conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                            conroladorP.setPrecondicionesCU();
                            controladorR = new ControladorResumen(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                            controladorR.setResumenCU();
                            controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                            controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU); //cambie aca PC por D1 en los parametros
                            controladorD1.setActorCelda();
                            controladorD1.setDatosD2();
                            controladorD1.setActoresCU();
                            controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                            controladorD2.setDescripcionCU();
                controladorE = new ControladorExcepciones(this, controladorD2.modeloMC, controladorD2.modeloON, controladorD2.modeloCU);
                vista.getPanel().add(controladorE.getVista(), "VExcepciones");
                controladorE.activarVista();
            }
        }else if (nvista == 11) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(12);
                this.vista.setNvista(12);
                controladorE.setExcepciones();
                controladorDCU = new ControladorDefinirCasosDeUso(this, controladorE.modeloMC, controladorD2.modeloON, controladorE.modeloCU);
                vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
                controladorDCU.activarVista();
            }
            else{
                this.vista.setNumeroEstado(12);
                this.vista.setNvista(12);
                            controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                            this.controladorCU1.setRows();
                            this.controladorCU1.setListWO();
                            this.controladorCU1.setListadoSA();
                            controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
                            controladorCU2.setNombreCasosUso();
                            controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                            conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                            conroladorP.setPrecondicionesCU();
                            controladorR = new ControladorResumen(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                            controladorR.setResumenCU();
                            controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                            controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU); //cambio D1 por PC
                            controladorD1.setActorCelda();
                            controladorD1.setDatosD2();
                            controladorD1.setActoresCU();
                            controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                            controladorD2.setDescripcionCU();
                            controladorE = new ControladorExcepciones(this, controladorE.modeloMC, controladorD2.modeloON, controladorE.modeloCU);
                            controladorE.setExcepciones();
                controladorDCU = new ControladorDefinirCasosDeUso(this, controladorE.modeloMC, controladorD2.modeloON, controladorE.modeloCU);
                vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
                controladorDCU.activarVista();
            }
        }
//        else if (nvista == 12) {
//            if(this.getVista().getSA() == 0){
//                vista.setforwardDisable();
//                this.vista.setNumeroEstado(13);
//                this.vista.setNvista(13);
//                controladorEx2.setExcepciones2();
//                controladorDCU = new ControladorDefinirCasosDeUso(this, controladorEx1.modeloMC, controladorEx2.modeloON, controladorEx2.modeloCU);
//                vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
//                controladorDCU.activarVista();
//            }
//            else{
//                vista.setforwardDisable();
//                this.vista.setNumeroEstado(13);
//                this.vista.setNvista(13);
//                    this.controladorCU1.setListWO();
//                            this.controladorCU1.setListadoSA();
//                            controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);;
//                            controladorCU2.setNombreCasosUso();
//                            controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
//                            conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
//                            conroladorP.setPrecondicionesCU();
//                            controladorR = new ControladorResumen(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
//                            controladorR.setResumenCU();
//                            controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
//                            controladorD1 = new ControladorDescripcion1(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
//                            controladorD1.setActorCelda();
//                            controladorD1.setDatosD2();
//                            controladorD1.setActoresCU();
//                            controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
//                            controladorD2.setDescripcionCU();
//                            controladorEx1 = new ControladorExcepciones1(this, controladorEx1.modeloMC, controladorD2.modeloON, controladorEx1.modeloCU);
//                            controladorEx1.setExcepciones1();
//                            controladorEx2 = new ControladorExcepciones2(this, controladorEx1.modeloMC, controladorD2.modeloON, controladorEx1.modeloCU);
//                            controladorEx2.setExcepciones2();
//                controladorDCU = new ControladorDefinirCasosDeUso(this, controladorEx1.modeloMC, controladorEx2.modeloON, controladorEx2.modeloCU);
//                vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
//                controladorDCU.activarVista();
//            }
//        }
    }

    public void activarVatras(int nvista, int nEstado) {
        
         if(nvista == 2){
            //vista.setBackDisable();
        }
        else if (nvista == 3) {
            //antes de llamar a JPCargarArchivos se debe advertir que guarde o los pasos realizados en las siguientes vistas se perderan
            //si decide guardar o no guardar e ir atras se carga, si decide cancelar no se carga
            vista.setBackDisable();
            this.vista.setNumeroEstado(2);
            this.vista.setNvista(2);
            controladorCA = new ControladorCargarArchivos(this);
            vista.getPanel().add(controladorCA.getVista(), "VCargarArchivo");
            this.controladorCA.activarVista();
        } else if (nvista == 4) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(3);
                this.vista.setNvista(3);
                controladorCU1 = new ControladorIdentificarCU1(this, controladorCA.modeloMC, controladorCA.modeloON, controladorCA.modeloCU);
                vista.getPanel().add(controladorCU1.getVista(), "VIdentificarCU1");
                controladorCU1.activarVista();
            }
            else{
                this.vista.setNumeroEstado(3);
                this.vista.setNvista(3);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                vista.getPanel().add(controladorCU1.getVista(), "VIdentificarCU1");
                controladorCU1.activarVista();
            }
        } else if (nvista == 5) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(4);
                this.vista.setNvista(4);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                //paso al controlador identificar caso de uso paso 2
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
                controladorCU2.activarVista();
            }
            else{
                this.vista.setNumeroEstado(4);
                this.vista.setNvista(4);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
                controladorCU2.activarVista();
            }
        } else if (nvista == 6) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(5);
                this.vista.setNvista(5);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
                controlOA.activarVista();
            }
            else{
                this.vista.setNumeroEstado(5);
                this.vista.setNvista(5);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
                controlOA.activarVista();
            }
        } else if (nvista == 7) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(6);
                this.vista.setNvista(6);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
                conroladorP.activarVista();
            }
            else{
                this.vista.setNumeroEstado(6);
                this.vista.setNvista(6);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
                conroladorP.activarVista();
            }
        } else if (nvista == 8) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(7);
                this.vista.setNvista(7);
                conroladorP.setPrecondicionesCU();
                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                vista.getPanel().add(controladorR.getVista(), "VResumen");
                controladorR.activarVista();
            }
            else{
                this.vista.setNumeroEstado(7);
                this.vista.setNvista(7);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                conroladorP.setPrecondicionesCU();
                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                vista.getPanel().add(controladorR.getVista(), "VResumen");
                controladorR.activarVista();
            }
        } else if (nvista == 9) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(8);
                this.vista.setNvista(8);
                controladorR.setResumenCU();
                controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
                controladorPC.activarVista();
            }
            else{
                this.vista.setNumeroEstado(8);
                this.vista.setNvista(8);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                conroladorP.setPrecondicionesCU();
                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                controladorR.setResumenCU();
                controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
                controladorPC.activarVista();
            }
        } else if (nvista == 10) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(9);
                this.vista.setNvista(9);
                controladorPC.setPostCondicionesCU();
                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
                vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
                controladorD1.activarVista();
            }
            else{
                this.vista.setNumeroEstado(9);
                this.vista.setNvista(9);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                conroladorP.setPrecondicionesCU();
                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                controladorR.setResumenCU();
                controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                controladorPC.setPostCondicionesCU();
                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
                vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
                controladorD1.activarVista();
            }
        } else if (nvista == 11) {
            if(this.getVista().getSA() == 0){
                this.vista.setNumeroEstado(10);
                this.vista.setNvista(10);
                controladorD1.setActorCelda();
                controladorD1.setDatosD2();
                controladorD1.setActoresCU();
                controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
                controladorD2.activarVista();
            }
            else{
                this.vista.setNumeroEstado(10);
                this.vista.setNvista(10);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                conroladorP.setPrecondicionesCU();
                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                controladorR.setResumenCU();
                controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                controladorPC.setPostCondicionesCU();
                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
                controladorD1.setActorCelda();
                controladorD1.setDatosD2();
                controladorD1.setActoresCU();
                controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
                controladorD2.activarVista();
            }
        } else if (nvista == 12) {
            if(this.getVista().getSA() == 0){
                //vista.setforwardEnable();
                this.vista.setNumeroEstado(11);
                this.vista.setNvista(11);
                controladorD2.setDescripcionCU();
                controladorE = new ControladorExcepciones(this, controladorD2.modeloMC, controladorD2.modeloON, controladorD2.modeloCU);
                vista.getPanel().add(controladorE.getVista(), "VExcepciones");
                //vista.setforwardEnable();
                controladorE.activarVista();
            }
            else{
                //vista.setforwardEnable();
                this.vista.setNumeroEstado(11);
                this.vista.setNvista(11);
                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
                this.controladorCU1.setRows();
                this.controladorCU1.setListWO();
                this.controladorCU1.setListadoSA();
                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
                controladorCU2.setNombreCasosUso();
                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
                conroladorP.setPrecondicionesCU();
                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
                controladorR.setResumenCU();
                controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
                controladorPC.setPostCondicionesCU();
                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
                controladorD1.setActorCelda();
                controladorD1.setDatosD2();
                controladorD1.setActoresCU();
                controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
                controladorD2.setDescripcionCU();
                controladorE = new ControladorExcepciones(this, controladorD2.modeloMC, controladorD2.modeloON, controladorD2.modeloCU);
                vista.getPanel().add(controladorE.getVista(), "VExcepciones");
                vista.setforwardEnable();
                controladorE.activarVista();
            }
        } else if (nvista == 13) {
//            if(this.getVista().getSA() == 0){
//                //vista.setforwardEnable();
//                this.vista.setNumeroEstado(12);
//                this.vista.setNvista(12);
//                controladorD2.setDescripcionCU();
//                controladorEx2 = new ControladorExcepciones2(this, controladorEx2.modeloMC, controladorEx2.modeloON, controladorEx2.modeloCU);
//                vista.getPanel().add(controladorEx2.getVista(), "VExcepciones2");
//                vista.setforwardEnable();
//                controladorEx2.activarVista();
//            }
//            else{
//                //vista.setforwardEnable();
//                this.vista.setNumeroEstado(12);
//                this.vista.setNvista(12);
//                controladorCU1 = new ControladorIdentificarCU1(this, this.getVista().controlador.modeloMC, this.getVista().controlador.modeloON, this.getVista().controlador.modeloCU);
//                this.controladorCU1.setRows();
//                this.controladorCU1.setListWO();
//                this.controladorCU1.setListadoSA();
//                controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
//                controladorCU2.setNombreCasosUso();
//                controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
//                conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
//                conroladorP.setPrecondicionesCU();
//                controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
//                controladorR.setResumenCU();
//                controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
//                controladorPC.setPostCondicionesCU();
//                controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
//                controladorD1.setActorCelda();
//                controladorD1.setDatosD2();
//                controladorD1.setActoresCU();
//                controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
//                controladorD2.setDescripcionCU();
//                controladorEx1 = new ControladorExcepciones1(this, controladorEx1.modeloMC, controladorEx1.modeloON, controladorEx1.modeloCU);
//                controladorEx1.setExcepciones1();
//                controladorEx2 = new ControladorExcepciones2(this, controladorEx2.modeloMC, controladorEx2.modeloON, controladorEx2.modeloCU);
//                vista.getPanel().add(controladorEx2.getVista(), "VExcepciones2");
//                vista.setforwardEnable();
//                controladorEx2.activarVista();
//            }
        } 
    }    
    
//    public void activarVatras(int nvista) {
////        nvista = nvista-2;
////        if(nvista == 0){
////            nvista++;
////            //vista.setBackDisable();
////        }
//         //nvista = nvista--;
//         if (nvista == 1) {            
//            //System.out.println(nvista);
//            //nvista++;
//            this.vista.setNvista(nvista-2);
//            this.controladorCA.activarVista();
//            vista.setBackEnable();
//        } else if (nvista == 2) {
//            //nvista++;
//            this.vista.setNvista(nvista-2);
//            controladorCU1 = new ControladorIdentificarCU1(this, controladorCA.modeloMC, controladorCA.modeloON, controladorCA.modeloCU);
//            vista.getPanel().add(controladorCU1.getVista(), "VIdentificarCU1");
//            controladorCU1.activarVista();
//        } else if (nvista == 3) {
//            //nvista++;
//            this.vista.setNvista(nvista);
//            this.controladorCU1.setRows();
//            /*719*/ this.controladorCU1.setListWO();
//            /*720*/ this.controladorCU1.setListadoSA();
//            /*721*/         //paso al controlador identificar caso de uso paso 2
//            controladorCU2 = new ControladorIdentificarCU2(this, controladorCU1.modeloMC, controladorCU1.modeloON, controladorCU1.modeloCU);
//            vista.getPanel().add(controladorCU2.getVista(), "VIdentificarCU2");
//            controladorCU2.activarVista();
//        } else if (nvista == 4) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            controladorCU2.setNombreCasosUso();
//            controlOA = new ControladorObtenerActores(this, controladorCU2.modeloMC, controladorCU2.modeloON, controladorCU2.modeloCU);
//            vista.getPanel().add(controlOA.getVista(), "VObtenerActores");
//            controlOA.activarVista();
//        } else if (nvista == 5) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            conroladorP = new ControladorPrecondiciones(this, controlOA.modeloMC, controlOA.modeloON, controlOA.modeloCU);
//            vista.getPanel().add(conroladorP.getVista(), "VPrecondiciones");
//            conroladorP.activarVista();
//
//        } else if (nvista == 6) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            conroladorP.setPrecondicionesCU();
//            controladorR = new ControladorResumen(this, conroladorP.modeloMC, conroladorP.modeloON, conroladorP.modeloCU);
//            vista.getPanel().add(controladorR.getVista(), "VResumen");
//            controladorR.activarVista();
//        } else if (nvista == 7) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            controladorR.setResumenCU();
//            controladorPC = new ControladorPostCondiciones(this, controladorR.modeloMC, controladorR.modeloON, controladorR.modeloCU);
//            vista.getPanel().add(controladorPC.getVista(), "VPostCondiciones");
//            controladorPC.activarVista();
//        } else if (nvista == 8) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            controladorPC.setPostCondicionesCU();
//            controladorD1 = new ControladorDescripcion1(this, controladorPC.modeloMC, controladorPC.modeloON, controladorPC.modeloCU);
//            vista.getPanel().add(controladorD1.getVista(), "VDescripcion1");
//            controladorD1.activarVista();
//        } else if (nvista == 9) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            controladorD1.setActorCelda();
//            controladorD1.setDatosD2();
//            controladorD1.setActoresCU();
//            controladorD2 = new ControladorDescripcion2(this, controladorD1.modeloMC, controladorD1.modeloON, controladorD1.modeloCU);
//            vista.getPanel().add(controladorD2.getVista(), "VDescripcion2");
//            controladorD2.activarVista();
//        } else if (nvista == 10) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            controladorD2.setDescripcionCU();
//            controladorE = new ControladorExcepciones(this, controladorD2.modeloMC, controladorD2.modeloON, controladorD2.modeloCU);
//            vista.getPanel().add(controladorE.getVista(), "VExcepciones");
//            vista.setforwardEnable();
//            controladorE.activarVista();
//        } else if (nvista == 11) {
//            nvista++;
//            this.vista.setNvista(nvista);
//            controladorE.setExcepciones();
//            controladorDCU = new ControladorDefinirCasosDeUso(this, controladorE.modeloMC, controladorE.modeloON, controladorE.modeloCU);
//            vista.getPanel().add(controladorDCU.getVista(), "VDefinirCasosUso");
//            vista.setforwardDisable();
//            controladorDCU.activarVista();
//        }
//
//
//    }
    

    /*436*/ /**
     * Método principal
     * @param args: argumentos de llamado de main
     */
    /*440*/
    public static void main(String[] args) {
        final ControladorPrincipal control = new ControladorPrincipal();
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            java.awt.EventQueue.invokeLater(new Runnable() {

                public void run() {
                    VistaPrincipal.setDefaultLookAndFeelDecorated(true);
                    control.getVista().setExtendedState(JFrame.MAXIMIZED_BOTH);
                    control.getVista().setVisible(true);
                    
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
            control.getVista().setVisible(true);
        }
    }
    /*444*/ }
